export default {
  /**
   * 公共loadData方法
   * @param _this 当前this对象
   * @param _url 请求地址
   * @param _params 请求参数
   * @returns {Promise<undefined>} 返回JSON
   */
  async loadData(_this, _url, _params) {
    console.log('----进入公共loadData方法----')
    console.log(
      '加载数据中! 接收参数 url->' + _url + ' params->' + JSON.stringify(_params))
    let _res = await this.get(_this, _url, _params, true)
    console.log('加载数据完毕! 返回数据 res->' + JSON.stringify(_res))
    return _res
  },
  /**
   * GET请求(同步方法)
   * @param _this 当前this对象
   * @param _url 请求地址
   * @param _params 请求参数
   * @param _callback 是否返回实体
   * @returns {Promise<*>} 返回JSON
   */
  async get(_this, _url, _params, _callback) {
    let _res
    await _this.$http.get(_url, {params: _params}).then(({data: res}) => {
      if (_callback) {
        _res = res
      }
    }).catch(e => {
      _this.$message({
        type: 'error',
        message: e
      })
    })
    if (_callback) {
      return _res
    }
  },
  /**
   * POST请求(同步方法)
   * @param _this 当前this对象
   * @param _url 请求地址
   * @param _params 请求参数(JSON格式)
   * @param _callback 返回JSON
   * @returns {Promise<*>}
   */
  async post(_this, _url, _params, _callback) {
    let _res
    await _this.$http.post(_url, _params).then(({data: res}) => {
      if (_callback) {
        _res = res
      }
    }).catch(e => {
      _this.$message({
        type: 'error',
        message: e
      })
    })
    if (_callback) {
      return _res
    }
  },
  /**
   * 根据返回数据显示信息
   * @param _this 当前this对象
   * @param _res 返回数据
   * @param _responseCode CODE码 ,默认传0
   * @param _condition 条件判断 ,默认传true
   * @param _successShow 成功时是否显示 ,默认传true
   * @param _errorShow 失败时是否显示 ,默认传true
   */
  showCallBackMessage(_this, _res, _responseCode, _condition, _successShow,
    _errorShow
  ) {
    if (!_responseCode) {
      _responseCode = 0
    }
    let _type
    let _message
    if (_res && _res.errcode == _responseCode && _condition) {
      _type = 'success'
      _message = _res.errmsg || '操作成功!'
      if (_successShow) {
        this.showMessage(_this, _type, _message)
      }
    } else {
      _type = 'error'
      _message = _res.errmsg || '操作失败!'
      if (_errorShow) {
        this.showMessage(_this, _type, _message)
      }
    }
  }
  ,
  /**
   * 显示消息
   * @param _type 消息类型
   * @param _message 消息信息
   */
  showMessage(_this, _type, _message) {
    _this.$message({
      type: _type,
      message: _message
    })
  }

}


